Distributed computing is a technique for allocating application data processing among several computing resources. In the information technology industry, there is much interest in distributed computing due to the efficiencies gained by utilizing several different processors for common applications. Some distributed computing platforms are known as client/server platforms, because each computing resource represents either a client or a server. A client resource is a consumer of application services and operates by sending requests to a server over a network. Clients generally represent the users of a system, such as a person at an application workstation. A server resource is a provider of application services and operates by receiving request messages from clients, performing data processing based on those requests, and sending reply messages to the clients. Servers generally represent the components that maintain enterprise data resources and implement business policies.
Implementation of a distributed platform often involves the integration of various types of heterogeneous computing and network resources into a single, enterprise-wide network. There are many products, standards, and communication protocols available for doing this, and many enterprises make use of several of them. This heterogeneity creates a significant problem with regards to interoperability. Several different applications running on various operating systems and hardware may interface with numerous incompatible messaging and network communication protocols. Application programmers have to deal with the complexities and intricacies of all of these protocols in order for their applications to work in heterogeneous distributed computing environments.
Additionally, programmers may need to provide a means for their applications to determine optimal transport mechanisms for their messages. This may be needed on both client and server resources. At least one message broker has been developed for transport of messages, such as the one described in the commonly-assigned U.S. Pat. No. 5,790,809 issued on Aug. 4, 1998, to Ralph Holmes, entitled REGISTRY COMMUNICATIONS MIDDLEWARE, the contents of which are hereby incorporated by reference in their entirety.
The increasing popularity and heterogeneity of distributing computing systems, however, have emphasized the importance of finding approaches that can scale well, especially in terms of deploying and maintaining distributed systems, in the presence of many more users and diverse types of applications than previously thought feasible. A need therefore exists for an approach to brokering messages in a distributed system that is scalable in terms of current demands for numbers of users and diversity of application servers.